1. Technical Field
The subject matter described herein relates generally to accessing content over a network, and in particular to using a relay proxy to facilitate access to networked content by multiple applications on a user device.
2. Background Information
Many organizations and institutions route communications that are incoming or outgoing from their own network via a Hyper Text Transfer Protocol (HTTP) proxy in order to monitor network traffic and enforce network security policies. A browser application executing on each computing device within the network connects to the proxy, which routes data packets to and from the browser as appropriate. As all incoming and outgoing data packets pass through the proxy, the proxy can monitor network communications and perform enforcement operations as required.
Most schools provide Internet access to their students via an HTTP proxy. Thus, all student web traffic passes through a single point of access, which can be monitored. Further, access to content that is considered undesirable using the browsers of the school's computing devices can be blocked by the HTTP proxy, preventing student access to such content.
Modern tablets and smartphones (e.g., those running the Android™ operating system) typically include multiple applications, many of which access remote resources via the Internet. This raises a number of challenges for organizations and institutions wishing to use a proxy to monitor network traffic and enforce network security policies.
Firstly, each application must be configured to communicate via the proxy. This is both time consuming to implement and problematic for enforcement. A network administrator cannot easily monitor whether every application of every device operating in the network is connecting to the Internet via a proxy. Thus, it is hard to detect devices that either accidentally or maliciously have applications installed that connect directly to the Internet, bypassing the proxy.
Secondly, many proxies require that a device connecting to the Internet provide authentication credentials. These credentials need to be accessible to every application that requires access to the Internet. This is both a security risk, as a malicious application may share the credentials with an unauthorized third party, and inefficient, as each application must access the credentials independently. This inefficiency is further heightened in environments (e.g., schools) where multiple users use the same device. In such a scenario, the devices must track which user credentials are currently being used by each application and ensure that a given user's credentials are not made available to another user.